Development and testing of computer code can be a lengthy and challenging process. For code that executes within commercial computer networks, development and testing challenges are magnified due to the increased demands and performance expectations for such networks.
For example, concerning computer code that is designed to monitor the operation of a type of network device (e.g., by using the Simple Network Management Protocol, SNMP), a common practice is to physically obtain such a network device and connect it to a test apparatus that includes a computer or other device loaded with monitoring code that is being developed or updated to support the type of network device. Tests are conducted, and the behaviour of the network device is monitored and the code is modified accordingly. This process is resource intensive and suffers from a long development cycle. Hence, some types of network devices go unsupported, or supported only to older versions, for much of their deployment.
Other applications of software can suffer from such drawbacks as well.
In addition, it is often the case that computer code is developed and tested for expected data and only faces actual data when put into production. Such code must then be removed from production, or rolled back, if actual data ends up causing undesirable operation. Moreover, discovering undesirable operation in downstream systems that depend on the output of such computer code may not be practical or possible before deployment.
Numerous other drawbacks of conventional systems and techniques will also be apparent to those in the art.